﻿
using System.Web.UI;
using UD.SYSEXTUD.MASTER;
using System;
using System.Web.UI.WebControls;
using UD.Utilities.Exceptions;
namespace UD.SYSEXTUD
{
    public class UtilesHelper
    {
        /// <summary>
        /// Valor por defecto para la selección de dropdownlist
        /// </summary>
        public const string cValorInicialDropdown = "-1";

        /// <summary>
        /// Formato de tipo moneda a utilizar
        /// </summary>    
        public const string formatoMoneda = "{0:N2}";

        /// <summary>
        /// Identificador de la variable de application de modulos
        /// </summary>
        public const string appSEGURIDADModulos = "appSEGURIDADModulos";

        /// <summary>
        /// Identificador de la variable de application de programas
        /// </summary>
        public const string appSEGURIDADProgramas = "appSEGURIDADProgramas";

        /// <summary>
        /// Identificador de la variable de application de departamentos
        /// </summary>
        public const string appGRALDepartamentos = "appGRALDepartamentos";

        /// <summary>
        /// Identificador de la variable de application de municipios
        /// </summary>
        public const string appGRALMunicipios = "appGRALMunicipios";

        /// <summary>
        /// Identificador de la variable de application de tipo de documentos
        /// </summary>
        public const string appGRALTipoDocumentos = "appGRALTipoDocumentos";

        /// <summary>
        /// Identificador de la variable de application de tipos de cursos
        /// </summary>
        public const string appGRALTiposCursos = "appGRALTiposCursos";


        /// <summary>
        /// Identificador de la variable de application de facultades de la UD
        /// </summary>
        public const string appGRALFacultadesUD = "appGRALFacultadesUD";


        /// <summary>
        /// Identificador de la variable de application de proyectos curriculares de la UD
        /// </summary>
        public const string appGRALProyectosCurricularesUD = "appGRALProyectosCurricularesUD";


        /// <summary>
        /// Identificador de la variable de query string para los títulos de la página
        /// </summary>
        public const string queryStringTituloPagina = "titulo";


        /// <summary>
        /// Nombre del formulario donde se adicionan registros
        /// </summary>
        public const string pageAdd = "Add.aspx";

        /// <summary>
        /// Nombre del formulario donde se listan registros
        /// </summary>
        public const string pageList = "List.aspx";


        /*DropDownLists*/

        /// <summary>
        /// DropDownList Tipo de Documento Value Fields, Text Fields
        /// </summary>
        public const string ddDataValueFieldTipoDocumento = "IdTipoDocumento";
        public const string ddDataTextFieldTipoDocumento = "NombreTipoDocumento";

        /// <summary>
        /// DropDownList Municipios Value Fields, Text Fields
        /// </summary>
        public const string ddDataValueFieldMunicipio = "IdMunicipio";
        public const string ddDataTextFieldMunicipio = "NombreMunicipio";

        /// <summary>
        /// DropDownList Tipo Curso Value Fields, Text Fields
        /// </summary>
        public const string ddDataValueFieldTipoCurso = "IdTipoCurso";
        public const string ddDataTextFieldTipoCurso = "NombreTipoCurso";

        /// <summary>
        /// DropDownList Facultad Value Fields, Text Fields
        /// </summary>
        public const string ddDataValueFieldFacultad = "IdFacultad";
        public const string ddDataTextFieldFacultad = "NombreFacultad";

        /// <summary>
        /// DropDownList Proyecto Curricular Value Fields, Text Fields
        /// </summary>
        public const string ddDataValueFieldProyectoCurricular = "IdProyectoCurricular";
        public const string ddDataTextFieldProyectoCurricular = "NombreProyectoCurricular";

        /*Fin DropDownLists*/


        public static void SetTituloPagina(MasterPage pMasterPage, object pTituloPagina)
        {
            SYSEXTUDMasterPage masterPage;
            masterPage = (SYSEXTUDMasterPage)pMasterPage;
            if(pTituloPagina!=null)
                masterPage.SetTituloPagina(pTituloPagina.ToString());
            else
                masterPage.SetTituloPagina(string.Empty);
        }


        /// <summary>
        /// Realiza la conversión dinámica
        /// </summary>
        /// <typeparam name="T">Tipo a convertir</typeparam>
        /// <param name="pObjeto">Objeto a convertir</param>
        /// <param name="pMensajeExcepcion">Mensaje de excepción</param>
        public static void ValidarConversionTipoDato<T>(object pObjeto, string pMensajeExcepcion)
        {
            try
            {
                Convert.ChangeType(pObjeto, typeof(T));
            }
            catch
            {
                throw new UserInterfaceException(pMensajeExcepcion);
            }
        }

        /// <summary>
        /// Valida la seleccion de un item válido en un dropDownList
        /// </summary>
        /// <param name="pDropDownList"></param>
        /// <returns></returns>
        public static void ValidarSeleccionDropDownList(DropDownList pDropDownList, string pMensajeExcepcion)
        {
            if ((pDropDownList.SelectedValue == cValorInicialDropdown) || (pDropDownList.SelectedValue == string.Empty))
            {
                throw new UserInterfaceException(pMensajeExcepcion);
            }
        }

        public static bool ValidarSeleccionDropDownList(DropDownList pDropDownList)
        {
            if ((pDropDownList.SelectedValue == cValorInicialDropdown) || (pDropDownList.SelectedValue == string.Empty))
            {
                return false;
            }
            return true;
        }
    }
}